--[[
  返回 + 挑战
]]

local function alertChallenge()
  local ctn, x, y = 0, 0, 0
  RxLog('BackChallenge -> alertChallenge - 挑战弹框')
  ctn = RxTouchWithColor(Color_game_challenge_text_challenge)
  if ctn == 1 then
    RxLog('BackChallenge -> alertChallenge - 挑战弹框 >>>> 点击')
    RxTouch(x, y)
    mSleep(1500)
  end
end

function BackChallenge()
  local ctn, x, y = 0, 0, 0
  -- 第一步，判断底部宝箱
  RxLog('BackChallenge -> 判断底部宝箱')
  local android_size, ios_size = {0,0,0,0}, {0,0,0,0}
  android_size = {1218,916,1887,1036}

  local RedTable = CS_game_common_back_redpoint
  RedTable.size.android = android_size
  RedTable.size.ios = ios_size

  local whileLoop = 1
  while whileLoop == 1 do
    local isFind = 0
    ::continue:: -- goto
    -- 如果 挑战 过程中，弹出 “南蛮入侵”
    -- whileLoop = 0

    -- 体力不够弹框
    -- whileLoop = 0

    -- 宝箱
    RxLog('BackChallenge -> 中间区域 - 跳动宝箱')
    ctn, x, y = RxFindMultiColorTable(Color_game_challenge_yuanbao_box_left)
    -- 上面的代码，可能会有问题，如果宝箱 前面的武将没有挑战的时候，会误点
    if ctn == 0 then
      RxLog('BackChallenge -> 中间区域 - 跳动宝箱 - v2')
      ctn, x, y = RxFindMultiColorTable(Color_game_challenge_yuanbao_box_left_v2)
    end
    if ctn == 0 then
      RxLog('BackChallenge -> 中间区域 - 跳动宝箱 没有找到啊 --- 伤心')
    else
      isFind = 1
      RxLog('BackChallenge -> 中间区域 - 跳动宝箱 领取')
      RxTouch(x, y - 40)
      mSleep(2000)
      ctn = RxTouchWithColor(Color_game_challenge_bottom_right_box_receive)
      mSleep(2000)
      RxTouch(x, y) -- 点击任意区域
      mSleep(1000)
    end

    -- 第一步 底部3个宝箱
    RxLog('BackChallenge -> 底部右侧宝箱 - 红点')
    ctn = RxTouchWithColor(RedTable)
    if ctn == 1 then
      isFind = 1
      mSleep(2000)
      RxLog('BackChallenge -> 底部右侧宝箱 - 红点 >>> 点击 领取')
      ctn = RxTouchWithColor(Color_game_challenge_bottom_right_box_receive)
      mSleep(2000)
      RxTouch(100, 100) -- 点击任意区域
      mSleep(1000)
      goto continue
    end

    RxTouchMoveScreenRight(150)
    RxTouchMoveScreenRight(150)
    RxLog('BackChallenge -> 中间区域 - 对话框(在右侧)')
    ---- 第二步，判断该挑战
    clg_size = {161, 214, 1605, 895} -- 挑战任务+宝箱 区域
    ---- 对话框的位置 在右边
    ctn, x, y = RxFindMultiColorTable(Color_game_challenge_dialog_box_inRight)
    if ctn == 0 then
      -- 对话框的位置 在左边
      RxLog('BackChallenge -> 中间区域 - 对话框(在左侧 zuo)')
      ctn, x, y = RxFindMultiColorTable(Color_game_challenge_dialog_box_inLeft)
      if ctn == 1 then
        isFind = 0
        RxLog('BackChallenge -> 中间区域 - 对话框(在左侧 zuo) >>> 点击')
        RxTouch(x + 90, y + 80)
        mSleep(1000)
        alertChallenge()
      end
    else
      isFind = 0
      RxLog('BackChallenge -> 中间区域 - 对话框(在右侧) >>> 点击')
      RxTouch(x - 120, y + 80)
      mSleep(1000)
      alertChallenge()
    end

    -- 这里扫描不到啊、不对、不准确
    -- cStar = 0
    -- ::challengeStar::
    -- RxLog('BackChallenge -> 武将 星级 未挑战的 -> 扫描')
    -- ctn, x, y = RxFindMultiColorTable(Color_game_challenge_star_no)
    -- if ctn == 1 then
    --   isFind = 0
    --   RxTouch(x + 70, y + 100)
    --   mSleep(1000)
    --   alertChallenge()
    -- else
    --   cStar = cStar + 1
    --   if cStar < 3 then
    --     goto challengeStar
    --   end
    -- end

    -- 挑战 弹框 - 小弹框(主线副本) - 大弹框(名将副本)
    -- 体力？
    -- 战斗中...
    -- 跳过剧情
    -- 点击任意区域继续
    -- 战斗成功
    -- 战斗失败

    RxLog('BackChallenge -> isFind='..tostring(isFind)..' type='..tostring(type(isFind)))
    if isFind == 0 then
      whileLoop = 0
      break
    end
  end
  return ctn
end